package cn.song;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

/**
 * SpringBoot Excel操作演示项目启动类
 * 
 * <p>本项目是一个综合性的Excel操作演示平台，整合了多种主流Excel操作库：</p>
 * <ul>
 *   <li>EasyExcel 3.3.2 - 阿里巴巴开源的高性能Excel操作库</li>
 *   <li>EasyPoi 4.5.0 - 基于POI的简化Excel操作库</li>
 *   <li>Hutool 5.8.32 - 国产工具库，提供Excel工具类</li>
 * </ul>
 * 
 * <p>主要功能模块：</p>
 * <ul>
 *   <li>Excel文件导入导出 - 支持多种格式和大文件处理</li>
 *   <li>图片处理 - 从Excel中提取图片，支持图片压缩</li>
 *   <li>异步任务管理 - Redis缓存任务状态，支持进度跟踪</li>
 *   <li>枚举转换 - 性别等枚举类型的编码转换</li>
 *   <li>模板下载 - 提供Excel模板下载功能</li>
 * </ul>
 * 
 * <p>技术栈：</p>
 * <ul>
 *   <li>Spring Boot 2.6.7 - 主框架</li>
 *   <li>MyBatis Plus 3.5.2 - ORM框架</li>
 *   <li>Redis - 缓存和任务队列</li>
 *   <li>MySQL - 数据存储</li>
 * </ul>
 * 
 * @author SongRenShuo
 * @version 1.0.0
 * @since 2025/01/06
 * @see org.springframework.boot.autoconfigure.SpringBootApplication
 */
@SpringBootApplication
public class ExcelDemoApplication {

    /**
     * 应用程序主入口方法
     * 
     * <p>启动Spring Boot应用程序的标准入口点。该方法会执行以下关键步骤：</p>
     * 
     * <ol>
     *   <li>Ⅰ. 初始化Spring应用上下文</li>
     *   <li>Ⅱ. 加载自动配置类</li>
     *   <li>Ⅲ. 扫描组件并注册Bean</li>
     *   <li>Ⅳ. 启动内嵌Tomcat服务器</li>
     *   <li>Ⅴ. 初始化Web应用环境</li>
     * </ol>
     * 
     * @param args 命令行参数数组，可用于传递启动配置参数
     *             常用参数示例：
     *             --server.port=8080 (指定端口)
     *             --spring.profiles.active=dev (激活配置文件)
     * 
     * @throws RuntimeException 当应用启动失败时抛出运行时异常
     * 
     * @see SpringApplication#run(Class, String...)
     * @since 1.0.0
     */
    public static void main(String[] args) {
        // Ⅰ. 创建并运行Spring Boot应用程序实例
        SpringApplication.run(ExcelDemoApplication.class, args);
        
        // Ⅱ. 应用启动完成后的日志输出已由Spring Boot自动处理
        // 可在此处添加自定义的启动后逻辑
    }
}
